/**

This file is part of MaCI/GIMnet.

MaCI/GIMnet is free software: you can redistribute it and/or modify it 
under the terms of the GNU Lesser General Public License as published 
by the Free Software Foundation, either version 3 of the License, or 
(at your option) any later version.

MaCI/GIMnet is distributed in the hope that it will be useful, but WITHOUT 
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 
FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public 
License for more details.

You should have received a copy of the GNU Lesser General Public 
License along with GIMnet. (See COPYING.LESSER) If not, see 
<http://www.gnu.org/licenses/>.

**/
#ifndef SCAN_MATCH_H
#define SCAN_MATCH_H

#include <list>
# include "tpose.h"
using namespace std;

#ifndef PI
	#define PI 3.14159265
#endif

/**
 * Maximum possible distance measured by laser.
 */
#ifndef LASER_MAX_DIST
	#define LASER_MAX_DIST 80.0
#endif

/**
 * Number of laser points used.
 */
#ifndef NUMBER_OF_LASER_POINTS
	#define NUMBER_OF_LASER_POINTS 361
#endif

/**
 * Used as Roman-point in sickmapf2lsq.
 */
struct Point {
  float X,Y;
} typedef TFPoint;

/**
 * Struct to transfer silmu pose.
 */
/*
struct{
    double x;
	double y;
	double Angle;
	double time;      // last xy-data timestamp
}typedef TPose;
*/
/**
 * Struct to deliver data between tracking and laser
 */
struct {
	float x;         // last location in x-coordinate
	float y;         // last location in x-coordinate
	float Angle;     // last angle
	float time;      // last xy-data timestamp
	int numOfHits;   /* number of hits between refScan and actScan (0 (none)...
	                    HITNUMBER = ((250.0/360.0)*NUMOFMEASUREMENTS) (100% match)) **/
	float scan[NUMBER_OF_LASER_POINTS]; // Laserscan distances related to the pose
}typedef TLaserPose;

#endif
